package com.example.project.service;

import java.util.List;

import com.example.project.entity.ProjectRole;

/**
 * 项目角色Service接口
 * 
 * @author ruoyi
 * @date 2025-11-27
 */
public interface ProjectRoleService {

	/**
	 * 查询项目角色
	 * 
	 * @param id 项目角色主键
	 * @return 项目角色
	 */
	public ProjectRole selectProjectRoleById(Long id);

	/**
	 * 查询项目角色列表
	 * 
	 * @param projectRole 项目角色
	 * @return 项目角色集合
	 */
	public List<ProjectRole> selectProjectRoleList(ProjectRole projectRole);

	/**
	 * 查询系统角色列表
	 * 
	 * @return 项目角色集合
	 */
	public List<ProjectRole> selectAllList();

	/**
	 * 查询有效项目角色列表
	 * 
	 * @return 项目角色集合
	 */
	public List<ProjectRole> selectValidProjectRoleList();

	/**
	 * 新增项目角色
	 * 
	 * @param projectRole 项目角色
	 * @return 结果
	 */
	public int insertProjectRole(ProjectRole projectRole);

	/**
	 * 修改项目角色
	 * 
	 * @param projectRole 项目角色
	 * @return 结果
	 */
	public int updateProjectRole(ProjectRole projectRole);

	/**
	 * 批量删除项目角色
	 * 
	 * @param ids 需要删除的项目角色主键集合
	 * @return 结果
	 */
	public int deleteProjectRoleByIds(String ids);

	/**
	 * 删除项目角色信息
	 * 
	 * @param id 项目角色主键
	 * @return 结果
	 */
	public int deleteProjectRoleById(Long id);

	/**
	 * 检查角色名称是否已存在
	 * 
	 * @param name 角色名称
	 * @param id 角色ID（排除自身）
	 * @return 存在数量
	 */
	public int checkRoleName(String name, Long id);

}